package ch.zbw.rre.sortieren;

public class ShakerSort implements Isorter{

	private int[] feld;
	
	public ShakerSort() {
		this.feld = null;
	}

	@Override
	public void sort(int[] zahlen) {
		int counter = 0;
		this.feld = zahlen;
		for(int i = (this.feld.length -1); i >= 1; i--){
			for(int j = 1; j <= i; j++){
				if(this.feld[j] < this.feld[j-1]){
					int tempFeldJ = this.feld[j];
					int tempFeldJM1 = this.feld[j-1];
					this.feld[j] = tempFeldJM1;
					this.feld[j-1] = tempFeldJ;
				}
			}
		}
		this.feld[this.feld.length -1]= 2;
		for(int y = (this.feld.length -1); y>=1; y--){
			for(int z = y; y>=1 ; y--){
				if (this.feld[y] < this.feld[y-1]){
					int tempFeldJ = this.feld[y];
					int tempFeldJM1 = this.feld[y-1];
					this.feld[y] = tempFeldJM1;
					this.feld[y-1] = tempFeldJ;
				}
			}
		}
		
		for(int i = (this.feld.length -1); i >= 1; i--){
			for(int j = 1; j <= i; j++){
				if(this.feld[j] < this.feld[j-1]){
					int tempFeldJ = this.feld[j];
					int tempFeldJM1 = this.feld[j-1];
					this.feld[j] = tempFeldJM1;
					this.feld[j-1] = tempFeldJ;
					counter ++;
				}
			}
		}
		if (counter == 0){
			System.out.println("Sortierung erfolgreich");
		}
		else{
			System.out.println("Sortierung NICHT erfolgreich!");
		}
	}

}
